﻿using System.Data;
using System.Data.Odbc;

namespace crm.model
{
    public class AtividadeDao : Conexao
    {
        Conexao c = new Conexao();

        public bool inserirAtividade(Atividade obj)
        {
            colParams.Clear();
            string query = "insert into atividade (fkidoportunidades, fkidempresas, descricao, dataretorno, fkidusuarios, fkidstatus) values (?, ?, ?,?,?,?);";
            colParams.Add(new OdbcParameter("@fkidoportunidades", obj.FkIdOportunidades));
            colParams.Add(new OdbcParameter("@fkidempresas", obj.FkIdEmpresas));
            colParams.Add(new OdbcParameter("@descricao", obj.Descricao));
            colParams.Add(new OdbcParameter("@dataretorno", obj.DataRetorno));
            colParams.Add(new OdbcParameter("@fkidusuarios", obj.FkIdUsuarios));
            colParams.Add(new OdbcParameter("@fkidstatus", obj.FkIdStatus));
            return c.Executar(query, colParams);
        }

        public DataTable consultar()
        {
            string query = "select * from vw_atividade";
            return c.ExecutarConsulta(query);
        }

        public DataTable consultarHistorico()
        {
            string query = "select idatividade, datacontato ,dataretorno, u.nome responsavel, fkidoportunidades, a.fkidempresas, a.descricao, observacaoatividade,  op.descricao desOportunidade, p.nome produto from atividade as a inner join usuarios as u on a.fkidusuarios = u.idusuarios inner join oportunidades as op on a.fkidoportunidades = op.idoportunidades inner join produtos as p on op.fkidprodutos = p.idprodutos order by idatividade desc;";
            return c.ExecutarConsulta(query);
        }

        public DataTable consultarVW()
        {
            string query = "select*from vw_atividadeHistorico ";
            return c.ExecutarConsulta(query);
        }
       
        public DataTable consultar(int id)
        {
            colParams.Clear();
            string query = "select idatividade,  a.fkidusuarios, datacontato ,dataretorno, u.nome responsavel, fkidoportunidades, a.fkidempresas, a.descricao, observacaoatividade,  op.descricao desOportunidade, p.nome produto from atividade as a inner join usuarios as u on a.fkidusuarios = u.idusuarios inner join oportunidades as op on a.fkidoportunidades = op.idoportunidades inner join produtos as p on op.fkidprodutos = p.idprodutos where idatividade = ?;";
            colParams.Add(new OdbcParameter("@idatividade", id));
            return c.ExecutarConsulta(query, colParams);
        }

        public DataTable consultarHAtividade(int id)
        {
            colParams.Clear();
            string query = "select * from atividade where fkidoportunidades = ? and fkidstatus = 0;";
            colParams.Add(new OdbcParameter("@fkidoportunidades", id));
            return c.ExecutarConsulta(query, colParams);
        }

        public bool finalizarAtividade(Atividade obj)
        {
            string query = "update atividade set fkidstatus = 2, observacaoatividade = ?, datacontato = ?  where idatividade = ?;";
            colParams.Add(new OdbcParameter("@observacaoatividade", obj.Observacao));
            colParams.Add(new OdbcParameter("@datacontato", obj.DataContato));
            colParams.Add(new OdbcParameter("@idatividade", obj.IdAtividade));
            return c.Executar(query, colParams);
        }
    }
}
